Internet-based real-time applications such as video streaming, multiparty conferencing, Internet gaming and collaborative services have been increasing steadily and are predicted to see a robust growth in coming years. These applications require a performance guarantee expressed in terms of delay, bandwidth and loss rate, etc. In packet switched networks, packets from different flows interact with each other, making a Quality of Service (QoS) guarantee a challenging problem. Several QoS networking frameworks have been studied.
Integrated Service (IntServ) provides an end-to-end QoS guarantee but it does not scale well to large networks. For a flow of certain traffic specification, IntServ uses the RSVP protocol to set up a path and reserve resources at each node along the path. As per-flow states have to be maintained and admission tests have to be performed at each node, scaling is difficult.
Differentiated Service (DiffServ) is more scalable than IntServ, however end-to-end QoS is not guaranteed. In DiffServ, traffic is classified into different classes and a packet is forwarded based on per-hop behavior (PHB) at each router. DiffServ may assign higher priorities to traffic classified as a real-time application, but the QoS is unpredictable as different routers may define different PHBs for the same differentiated services code point (DSCP) bits.
Multi-Path Label Switching (MPLS) was originally designed to improve forward speed of routers. It uses traffic engineering and constraint-based routing technologies for resource management and QoS improvement for backbone Internet Protocol (IP) networks and enterprise Wide Area Network (WAN) applications. However, the control and management system of MPLS is complicated and expensive.
In many cases, instead of providing complicated and expensive QoS services, service providers use over provisioning and transport control protocol to partially solve the QoS problem.
QoS routing aims at selecting a network path that satisfies a set of QoS constraints of an application. These constraints can be either link constraints or path constraints. Link constraints, such as bandwidth, specify a QoS requirement imposed on a link. A path constraint specifies the end-to-end QoS requirement along a path. For an example, a delay constraint on a path is the upper bound of the summary of the delay on each link along the path. In general, link constraints are often easy to deal with. For an example, links with bandwidth lower than the requirement of an application can be pruned from the network graph. To identify a path that satisfies a path constraint, however, is more complicated. It has been proven that finding a feasible path satisfying multiple path constraints is NP complete. QoS routing has been studied extensively in the research community, many algorithms are proposed with a variety of constraints considered.
SDN is an emerging network architecture with the control plane decoupled from the data plane. In general terms, SDN has a centralized network controller, which communicates with network devices through a standard application programming interface (API), referred to as OpenFlow, for network configuration and management. In SDN, network resources can be dynamically configured to meet the constantly changing requirements of applications. SDN has better control over network resources which makes providing fine-grained QoS services viable.